package config

import (
	"github.com/zeromicro/go-queue/kq"
	"github.com/zeromicro/go-zero/core/service"
	"github.com/zeromicro/go-zero/core/stores/redis"
	"github.com/zeromicro/go-zero/zrpc"
)

type Config struct {
	service.ServiceConf

	BizRedis redis.RedisConf

	DefaultGrpcServer string
	WebSocketChatUrl  string

	WxMiniConf WxMiniConf

	Query struct {
		PhotoForumId             int64
		PostForumId              int64
		ColumnForumId            int64
		DefaultForumId           int64
		DSForumId                int64
		DSUserId                 int64
		DSUserName               string
		DSUserAvatar             string
		DefaultElasticSearchHost string
		GorseUrl                 string
	}

	// kq : pub sub
	DeferedUpdateCart           kq.KqConf
	DeferedUpdateTradeState     kq.KqConf
	DeferredInquireAi           kq.KqConf
	DeferredCreateGorseItem     kq.KqConf
	DeferredUnFreezePointCoupon kq.KqConf
	PaymentUpdateTradeState     kq.KqConf
	PaymentRefund               kq.KqConf
	AttachmentSyncQiniu         kq.KqConf
	DistributePoints            kq.KqConf
	UploadShipmentInfo          kq.KqConf

	// rpc
	AttachmentRpc zrpc.RpcClientConf
	BackendRpc    zrpc.RpcClientConf
	BlogRpc       zrpc.RpcClientConf
	ForumRpc      zrpc.RpcClientConf
	OrderRpc      zrpc.RpcClientConf
	ProductRpc    zrpc.RpcClientConf
	PromotionRpc  zrpc.RpcClientConf
	UserRpc       zrpc.RpcClientConf
	SettingRpc    zrpc.RpcClientConf
}
